| автор перевода - Штрек - flash-club.ru | Предыдущая | Следующая | Оглавление |
Flash Player 6.
expression1=== expression2
Булевое значение.
Оператор, проверяет два выражения на равенство, оператор строгого равенства
(===) выполняет ту же самую функцию, что и оператор равенства (==)
, за исключением того, что типы данных не конвертированы. (Для дополнительной
информации, смотрите "Автоматическое
приведение типов данных" в Использовании ActionScript во Флэш
.) Если оба выражения равны, включая равенство их типов данных, то результат
будет true.
Определение эквивалентности зависит от сравниваемых типов данных :
Для дополнительной информации, смотрите "Старшинство и ассоциативность операторов" в Использовании ActionScript во Флэш .
Комментарии в следующем примере объясняют возвращенное значение операций, которые используют операторы равенства, строгого равенства и строгого неравенства:
// Оба оператора возвращают true потому, что конвертация не требуется var string1:String = "5"; var string2:String = "5"; trace(string1 == string2); // true trace(string1 === string2); // true // Автоматическое приведение данных, в этом примере, конвертирует 5 в “5” var string1:String = "5"; var num:Number = 5; trace(string1 == num); // true trace(string1 === num); // false // Автоматическое приведение данных, в этом примере, конвертирует true в “1” var string1:String = "1"; var bool1:Boolean = true; trace(string1 == bool1); // true trace(string1 === bool1); // false // Автоматическое приведение данных, в этом примере, конвертирует false в “0” var string1:String = "0"; var bool2:Boolean = false; trace(string1 == bool2); // true trace(string1 === bool2); // false
Следующие примеры показывают, что строгое равенство сравнивает переменные,
которые являются ссылками иначе, чем переменные с литеральным значением. По
этой причине, при создании строк, имеет смысл использовать строковые литералы,
вместо применения оператора new с классом String.
/ Создаётся строковая переменная, имеющая литеральное значение
var str:String = "asdf”;
// Создаётся переменная, которая является ссылкой
var stringRef:String = new String("asdf");
// Оператор равенства не различает литералы, переменные
// и ссылки
trace(stringRef == "asdf"); // true
trace(stringRef == str); // true
trace("asdf" == str); // true
// Оператор (===)сравнивает переменные,
// которые являются ссылками
// иначе, чем переменные с литеральным значением
trace(stringRef === "asdf"); // false
trace(stringRef === str); // false
! (логическое НЕТ), !=
(неравенство), !== (строгое
неравенство), && (логическое
И), || (логическое ИЛИ),
== (равенство)
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |